package fox.framework.rpc.context;

import fox.framework.rpc.context.definition.RpcDefinition;

import java.util.Collection;

/**
 * @author cuichao
 * @Description: RpcDefinitionRegister
 * @Date: create in 2021/2/18 1:09
 */
public interface RpcDefinitionRegister {

    /**
     * 注册一个Rpc服务
     * @param definition
     * @param name
     * @param object
     */
    void register(String name,RpcDefinition definition, Object object);

    /**
     * 注册一个Rpc服务
     * @param name
     * @param definition
     */
    void register(String name,RpcDefinition definition);

    /**
     * 该类是否被注册
     *
     * @param name
     * @return
     */
    boolean contain(String name);

    /**
     * 返回一个definition
     *
     * @param name
     * @return
     */
    RpcDefinition getDefinition(String name);

    /**
     * 返回所有的definitions
     * @return
     */
    Collection<RpcDefinition> getAllDefinitions();
}
